﻿using System.Collections.Generic;
using System;

namespace HREngine.Bots
{
    public partial class Behavior任务法 : Behavior
    {
        private int bonus_enemy = 4;
        private int bonus_mine = 4;

        public override string BehaviorName() { return "任务法"; }
        PenalityManager penman = PenalityManager.Instance;
        
        // 发现卡的价值
        public override int getDiscoverVal(CardDB.Card card, Playfield p)
        {
            switch (card.nameCN)
            {
                //能用到上火焰法术
                case CardDB.cardNameCN.炽热连击:
                case CardDB.cardNameCN.初始之火:
                case CardDB.cardNameCN.点燃:
                case CardDB.cardNameCN.燃烧:
                case CardDB.cardNameCN.火热促销:
                case CardDB.cardNameCN.火球术:
                case CardDB.cardNameCN.烈焰风暴:
                    

                //能用上的冰霜法术    
                case CardDB.cardNameCN.冰风暴等级1:
                case CardDB.cardNameCN.急速冷冻:
                case CardDB.cardNameCN.冰冷智慧:
                case CardDB.cardNameCN.绿洲盟军:
                case CardDB.cardNameCN.寒冰护体:
                case CardDB.cardNameCN.冰锥术:
                    
                    
                //能用上的奥术法术    
                case CardDB.cardNameCN.迸射流星:
                case CardDB.cardNameCN.能量之泉:
                case CardDB.cardNameCN.始生研习:
                case CardDB.cardNameCN.衰变飞弹:
                case CardDB.cardNameCN.符文宝珠:
                case CardDB.cardNameCN.制造法力饼干:
                case CardDB.cardNameCN.考前刷夜:
                case CardDB.cardNameCN.咒术洪流:
                case CardDB.cardNameCN.奥术智慧:
                case CardDB.cardNameCN.法术反制:
                    
                    
                    
                //能用的随从//法术伤害
                case CardDB.cardNameCN.研究伙伴:
                case CardDB.cardNameCN.星术师索兰莉安:
                case CardDB.cardNameCN.被禁锢的凤凰:
                case CardDB.cardNameCN.血法师萨尔诺斯:
                case CardDB.cardNameCN.小个子法师:
                case CardDB.cardNameCN.工会商人:
                case CardDB.cardNameCN.卷轴管理者:
                    
                //能用的随从//法师随从
                case CardDB.cardNameCN.呓语魔典:
                case CardDB.cardNameCN.魔杖窃贼:
                case CardDB.cardNameCN.星占师:
                case CardDB.cardNameCN.   
            }
            return 0;
        }

        public override int getComboPenality(CardDB.Card card, Minion target, Playfield p, Handmanager.Handcard nowHandcard)
        {
            // 无法选中
            if (target != null && target.untouchable)
            {
                return 100000;
            }

            // 初始惩罚值
            int pen = 0;
            pen += penman.getSilencePenality(card.nameEN, target, p);
            
            
            switch (card.nameCN)
            {
                case CardDB.cardNameCN.巫师的计策:
                    pen -= 100;
                    break;
                case CardDB.cardNameCN.冰风暴等级1:
                case CardDB.cardNameCN.冰风暴等级1:
                case CardDB.cardNameCN.衰变飞弹:
                case CardDB.cardNameCN.冰冷智慧:
                case CardDB.cardNameCN.始生研习:
                case CardDB.cardNameCN.初始之火:
                case CardDB.cardNameCN.传承之火:
                
                case CardDB.cardNameCN.考前刷夜:
                case CardDB.cardNameCN.符文宝珠:
                case CardDB.cardNameCN.点燃:
                case CardDB.cardNameCN.咒术洪流:
                case CardDB.cardNameCN.奥术智慧:
                case CardDB.cardNameCN.寒冰护体:
                case CardDB.cardNameCN.火热促销:
                case CardDB.cardNameCN.火球术:
                case CardDB.cardNameCN.埃匹希斯冲击:
                case CardDB.cardNameCN.清凉的泉水:
                    break;
                
            }
            return pen;
        }

        // 核心，场面值
        public override float getPlayfieldValue(Playfield p)
        {
            
        }

        // 敌方随从价值 主要等于（HP + Angr） * 4 + 4
        public override int getEnemyMinionValue(Minion m, Playfield p)
        {
            
        }

        // 我方随从价值，大致等于主要等于 （HP + Angr） * 4 + 4
        public override int getMyMinionValue(Minion m, Playfield p)
        {
            
        }

        public override int getSirFinleyPriority(List<Handmanager.Handcard> discoverCards)
        {
            
            
        }
        public override int getSirFinleyPriority(CardDB.Card card)
        {
            return SirFinleyPriorityList[card.nameEN];
        }

        private Dictionary<CardDB.cardNameEN, int> SirFinleyPriorityList = new Dictionary<CardDB.cardNameEN, int>
        {
            
        };


        public override int getHpValue(Playfield p, int hpboarder, int aggroboarder)
        {
            
        }
        
        /// 攻击触发的奥秘惩罚
        public override int getSecretPen_CharIsAttacked(Playfield p, SecretItem si, Minion attacker, Minion defender)
        {
            
        }




    }
}